template<typename T>
List_Generic<T>::List_Generic(T element):head(new Node<T>(element))
{
}

template<typename T>
void List_Generic<T>::add_element(T element)
{
  Node<T>* l=head;

  while(l->next != NULL)
    l=l->next;

  Node<T>* tmp=new Node<T>(element);
  l->next=tmp;
}

template<typename T>
void List_Generic<T>::print_element()
{
Node<T>* l=head;

while(l != NULL)
{
cout << l->values << endl;
l=l->next;
}

}

template<typename T>
List_Generic<T>::~List_Generic()
{
  Node<T>* t;

  while(head != NULL)
    {
      t=head;
      head=head->next;
      delete t;
    }
head=NULL;
}